package chapter08_oop._interface;

/**
 * ClassName: USBTest
 * Package: capter08._interface
 * Description:
 *
 * 接口多态的应用
 *
 * @Author SherryAn
 * @Create 2025/7/21 20:03
 */
public class USBTest {
    public static void main(String[] args) {
        Computer computer=new Computer();
        Printer printer=new Printer();
//  方式一：创建接口实现类的对象
//        computer.transferData(printer);
//  方式二：创建接口实现类的匿名对象
        computer.transferData(new Printer());
//  方式三：创建接口匿名实现类的对象
        USB usb1=new USB() {
            @Override
            public void start() {
                System.out.println("U盘开始工作");
            }

            @Override
            public void stop() {
                System.out.println("U盘结束工作");
            }
        };
        computer.transferData(usb1);
//  方式四：创建接口匿名实现类的匿名对象
        computer.transferData(new USB() {
            @Override
            public void start() {
                System.out.println("扫描仪开始工作");
            }

            @Override
            public void stop() {
                System.out.println("扫描仪结束工作");
            }
        });
    }
}

class Computer{

    public void transferData(USB usb){//多态的体现：USB usb=new Printer();
        System.out.println("设备连接成功");
        usb.start();
        System.out.println("数据传输细节操作");
        usb.stop();
    }
}

class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开始工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机结束工作");
    }
}
interface USB{
//    声明常量,长宽高...

//    方法
    public abstract void start();
    void stop();

}